package com.mfhcd.facepay.utils;

import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.mfhcd.facepay.R;

import java.util.List;


/**
 * Author：石强
 * E-Mail: shiqiang@mfhcd.com
 * Date：2019-05-27
 * 版权所有 © 现代金融控股（成都）有限公司
 */
public class ViewUtils {
    /**
     * 检测所有可输入的项，全部输入时按钮变红，否则变灰。
     *
     * @param confirmBtn 需要根据输入改变状态的按钮
     * @param views      所有需要校验输入的控件，只校验非空
     */
    public static void enableTextCheck(View confirmBtn, List<View> views) {
        checkBtn(confirmBtn, views);
        TextWatcher notNullWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }

            @Override
            public void afterTextChanged(Editable editable) {
                checkBtn(confirmBtn, views);
            }
        };
        for (View v : views) {
            if (v instanceof TextView) {//EditText继承TextView
                ((TextView) v).addTextChangedListener(notNullWatcher);
            }
        }
    }

    private static void checkBtn(View confirmBtn, List<View> views) {
        for (View v : views) {
            if (android.text.TextUtils.isEmpty(((TextView) v).getText().toString().trim())) {
                confirmBtn.setEnabled(false);
                confirmBtn.setBackgroundResource(R.drawable.normal_gradient_button_unselect);
                return;
            }
        }
        //全部非空
        confirmBtn.setEnabled(true);
        if (confirmBtn instanceof Button)
            confirmBtn.setBackgroundResource(R.drawable.normal_gradient_button);
    }

}
